package common.impl;
import java.util.Properties;

import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.servlet.http.HttpSession;

import org.apache.struts2.ServletActionContext;

/****************************************************************
 * 对邮箱使用（对于其他的使用类似的你应该也会更改了）
 * 首先把邮箱的POP3 SMTP打开
 * 首先确定你的网络正常、非代理
 * 确定你的邮箱开启了SMTP
 * 如果没有开启，那么这样设置下
 * 设置->账户 --在下面-- 把这个选上    [√]SMTP发信后保存到服务器
 * 经过验证新浪 /网易邮箱可以往qq/sina/163发邮件但是qq不能作为发送方 
 ****************************************************************/

public class JavaMail {
	  //设置服务器
    private static String KEY_SMTP         = "mail.smtp.host";
    private static String VALUE_SMTP     = "smtp.sina.com";
    //服务器验证
    private static String KEY_PROPS     = "mail.smtp.auth";
    private static boolean VALUE_PROPS     = true;
    //发件人用户名、密码
    private String SEND_USER             = "lzq20091838@sina.com";//你的邮箱
    private String SEND_UNAME             = "lzq20091838@sina.com"; //你的邮箱
    private String SEND_PWD             = "20091838";     //你的邮箱密码
    //建立会话
    private MimeMessage message;
    private Session s;
    
    /*
     * 初始化方法
     * */
    public void SendEmail(){
        Properties props = System.getProperties();
        props.setProperty(KEY_SMTP, VALUE_SMTP);
        props.put(KEY_PROPS, VALUE_PROPS);
        s = Session.getInstance(props);
        s.setDebug(true);/*开启后有调试信息*/
        message = new MimeMessage(s);  
    }
     
    /**
     * 发送邮件
     * @param headName         邮件头文件名
     * @param sendHtml         邮件内容
     * @param receiveUser     收件人184172133@qq.com
     */
    public void doSendHtmlEmail(String headName,String sendHtml,String receiveUser){
        try {
        	SendEmail();
            // 发件人  
            InternetAddress from = new InternetAddress(SEND_USER);
            message.setFrom(from);  
            // 收件人  
            InternetAddress to = new InternetAddress(receiveUser);  
            message.setRecipient(Message.RecipientType.TO, to);  
            // 邮件标题  
            message.setSubject(headName);
            String content = sendHtml.toString();
            // MiniMultipart类是一个容器类，包含MimeBodyPart类型的对象   
            Multipart mainPart = new MimeMultipart();   
            // 创建一个包含HTML内容的MimeBodyPart   
            BodyPart html = new MimeBodyPart();   
            // 设置HTML内容   
            html.setContent(content, "text/html; charset=utf-8");   
            mainPart.addBodyPart(html);   
            // 将MiniMultipart对象设置为邮件内容   
            message.setContent(mainPart);   
            message.setSentDate(new java.util.Date());//设置发信时间
            message.saveChanges();  
            Transport transport = s.getTransport("smtp");  
            // smtp验证，就是你用来发邮件的邮箱用户名密码  
            transport.connect(VALUE_SMTP, SEND_UNAME, SEND_PWD);  
            // 发送  
            transport.sendMessage(message, message.getAllRecipients());  
            transport.close();  
        } catch (AddressException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (MessagingException e) {
            e.printStackTrace();
        }  
    }
    
}


 
